home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 April: Mac OS SDK / Dev.CD Apr 99 SDK1.toast / Development Kits / Interfaces&Libraries / Universal / Interfaces / AIncludes / OCEMail.a < prev    next >
Encoding:
Text File  |  1998-08-17  |  63.2 KB  |  1,823 lines  |  [TEXT/MPS ]

  1. ;
  2. ;    File:        OCEMail.a
  3. ;
  4. ;    Contains:    Apple Open Collaboration Environment OCEMail Interfaces.
  5. ;
  6. ;    Version:    Technology:    AOCE Toolbox 1.02
  7. ;                Release:    Universal Interfaces 3.2
  8. ;
  9. ;    Copyright:    © 1994-1998 by Apple Computer, Inc., all rights reserved.
  10. ;
  11. ;    Bugs?:        For bug reports, consult the following page on
  12. ;                the World Wide Web:
  13. ;
  14. ;                    http://developer.apple.com/bugreporter/
  15. ;
  16. ;
  17.     IF &TYPE('__OCEMAIL__') = 'UNDEFINED' THEN
  18. __OCEMAIL__ SET 1
  19.  
  20.     IF &TYPE('__MACTYPES__') = 'UNDEFINED' THEN
  21.     include 'MacTypes.a'
  22.     ENDIF
  23.     IF &TYPE('__FILES__') = 'UNDEFINED' THEN
  24.     include 'Files.a'
  25.     ENDIF
  26.     IF &TYPE('__TEXTEDIT__') = 'UNDEFINED' THEN
  27.     include 'TextEdit.a'
  28.     ENDIF
  29.  
  30.     IF &TYPE('__DIGITALSIGNATURE__') = 'UNDEFINED' THEN
  31.     include 'DigitalSignature.a'
  32.     ENDIF
  33.     IF &TYPE('__OCE__') = 'UNDEFINED' THEN
  34.     include 'OCE.a'
  35.     ENDIF
  36.     IF &TYPE('__OCEAUTHDIR__') = 'UNDEFINED' THEN
  37.     include 'OCEAuthDir.a'
  38.     ENDIF
  39.     IF &TYPE('__OCEMESSAGING__') = 'UNDEFINED' THEN
  40.     include 'OCEMessaging.a'
  41.     ENDIF
  42.  
  43. ; *************************************************************************************
  44. ;  Common Definitions 
  45. ; *************************************************************************************
  46.  
  47. ;  reference to a new or open letter or message 
  48. ; typedef long                             MailMsgRef
  49.  
  50. ;  reference to an open msam queue 
  51. ; typedef long                             MSAMQueueRef
  52.  
  53. ;  identifies slots managed by a PMSAM 
  54. ; typedef unsigned short                 MSAMSlotID
  55.  
  56. ;  reference to an active mailbox 
  57. ; typedef long                             MailboxRef
  58.  
  59. ;  identifies slots within a mailbox 
  60. ; typedef unsigned short                 MailSlotID
  61.  
  62. ;  identifies a letter in a mailbox 
  63. MailSeqNum                RECORD 0
  64. slotID                     ds.w    1                ; offset: $0 (0)
  65. seqNum                     ds.l    1                ; offset: $2 (2)
  66. sizeof                     EQU *                    ; size:   $6 (6)
  67.                         ENDR
  68. ;  A MailBuffer is used to describe a buffer used for an IO operation.
  69. ;The location of the buffer is pointed to by 'buffer'. 
  70. ;When reading, the size of the buffer is 'bufferSize' 
  71. ;and the size of data actually read is 'dataSize'.
  72. ;When writing, the size of data to be written is 'bufferSize' 
  73. ;and the size of data actually written is 'dataSize'.
  74. ;
  75.  
  76. MailBuffer                RECORD 0
  77. bufferSize                 ds.l    1                ; offset: $0 (0)
  78. buffer                     ds.l    1                ; offset: $4 (4)
  79. dataSize                 ds.l    1                ; offset: $8 (8)
  80. sizeof                     EQU *                    ; size:   $C (12)
  81.                         ENDR
  82. ;  A MailReply is used to describe a commonly used reply buffer format.
  83. ;It contains a count of tuples followed by an array of tuples.
  84. ;The format of the tuple itself depends on each particular call.
  85. ;
  86.  
  87. MailReply                RECORD 0
  88. tupleCount                 ds.w    1                ; offset: $0 (0)
  89. ;  tuple[tupleCount] 
  90. sizeof                     EQU *                    ; size:   $2 (2)
  91.                         ENDR
  92. ;  Shared Memory Communication Area used when Mail Manager sends 
  93. ;High Level Events to a PMSAM. 
  94. ;
  95.  
  96. SMCA                    RECORD 0
  97. smcaLength                 ds.w    1                ; offset: $0 (0)        ;  includes size of smcaLength field 
  98. result                     ds.w    1                ; offset: $2 (2)
  99. userBytes                 ds.l    1                ; offset: $4 (4)
  100. slotCID                     ds        CreationID        ; offset: $8 (8)        ;  for create/modify/delete slot calls 
  101.                          ORG 8
  102. msgHint                     ds.l    1                ; offset: $8 (8)        ;  for kMailEPPCMsgOpened 
  103.                          ORG 16
  104. sizeof                     EQU *                    ; size:   $10 (16)
  105.                         ENDR
  106. ; *************************************************************************************
  107. ;  Value of creator and types fields for messages and blocks defined by MailManager 
  108.  
  109. kMailAppleMailCreator            EQU        'apml'                ; message and letter block creator 
  110. kMailLtrMsgType                    EQU        'lttr'                ; message type of letters, reports 
  111. kMailLtrHdrType                    EQU        'lthd'                ; contains letter header 
  112. kMailContentType                EQU        'body'                ; contains content of letter 
  113. kMailEnclosureListType            EQU        'elst'                ; contains list of enclosures 
  114. kMailEnclosureDesktopType        EQU        'edsk'                ; contains desktop mgr info for enclosures 
  115. kMailEnclosureFileType            EQU        'asgl'                ; contains a file enclosure, format is defined by AppleSingle 
  116. kMailImageBodyType                EQU        'imag'                ; contains image of letter 
  117. kMailMSAMType                    EQU        'gwyi'                ; contains msam specific information 
  118. kMailTunnelLtrType                EQU        'tunl'                ; used to read a tunnelled message 
  119. kMailHopInfoType                EQU        'hopi'                ; used to read hopInfo for a tunnelled message 
  120. kMailReportType                    EQU        'rpti'                ; contains report info 
  121. kMailFamily                        EQU        'mail'                ; Defines family of "mail" msgs: content, header, etc 
  122. kMailFamilyFile                    EQU        'file'                ; Defines family of "direct display" msgs 
  123. ;     
  124. ;kMailImageBodyType:
  125. ;    format is struct TPfPgDir - in Printing.h
  126. ;    *    struct TPfPgDir {
  127. ;    *        short    pageCount;        - number of pages in the image.
  128. ;    *        long    iPgPos[129];    - iPgPos[n] is the offset from the start of the block
  129. ;    *                                - to image of page n.
  130. ;    *                                - iPgPos[n+1] - iPgPos[n] is the length of page n.
  131. ;
  132. ;kMailReportType:
  133. ;Reports have the isReport bit set in MailIndications and contain a block of type kMailReport.
  134. ;This block has a header, IPMReportBlockHeader,
  135. ;followed by an array of elements, each of type IPMRecipientReport
  136. ;
  137. ;Various families used by mail or related msgs
  138. ;
  139.  
  140.  
  141.  
  142. ; *************************************************************************************
  143. ; typedef unsigned short                 MailAttributeID
  144.  
  145. ;  Values of MailAttributeID 
  146. ;  Message store attributes - stored in the catalog 
  147. ;  Will always be present in a letter and have fixed sizes 
  148.  
  149. kMailLetterFlagsBit                EQU        1                    ; MailLetterFlags 
  150.                                                             ; Letter attributes - stored in the letter will always be present in a letter and have fixed sizes 
  151. kMailIndicationsBit                EQU        3                    ; MailIndications 
  152. kMailMsgTypeBit                    EQU        4                    ; OCECreatorType 
  153. kMailLetterIDBit                EQU        5                    ; MailLetterID 
  154. kMailSendTimeStampBit            EQU        6                    ; MailTime 
  155. kMailNestingLevelBit            EQU        7                    ; MailNestingLevel 
  156. kMailMsgFamilyBit                EQU        8                    ; OSType 
  157.                                                             ; Letter attributes - stored in the letter may be present in a letter and have fixed sizes 
  158. kMailReplyIDBit                    EQU        9                    ; MailLetterID 
  159. kMailConversationIDBit            EQU        10                    ; MailLetterID 
  160.                                                             ; Letter attributes - stored in the letter may be present in a letter and have variable length sizes 
  161. kMailSubjectBit                    EQU        11                    ; RString 
  162. kMailFromBit                    EQU        12                    ; MailRecipient 
  163. kMailToBit                        EQU        13                    ; MailRecipient 
  164. kMailCcBit                        EQU        14                    ; MailRecipient 
  165. kMailBccBit                        EQU        15                    ; MailRecipient 
  166. ; typedef unsigned long                 MailAttributeMask
  167.  
  168. ;  Values of MailAttributeMask 
  169.  
  170. kMailLetterFlagsMask            EQU        $00000001
  171. kMailIndicationsMask            EQU        $00000004
  172. kMailMsgTypeMask                EQU        $00000008
  173. kMailLetterIDMask                EQU        $00000010
  174. kMailSendTimeStampMask            EQU        $00000020
  175. kMailNestingLevelMask            EQU        $00000040
  176. kMailMsgFamilyMask                EQU        $00000080
  177. kMailReplyIDMask                EQU        $00000100
  178. kMailConversationIDMask            EQU        $00000200
  179. kMailSubjectMask                EQU        $00000400
  180. kMailFromMask                    EQU        $00000800
  181. kMailToMask                        EQU        $00001000
  182. kMailCcMask                        EQU        $00002000
  183. kMailBccMask                    EQU        $00004000
  184. ; typedef unsigned long                 MailAttributeBitmap
  185.  
  186. ; *************************************************************************************
  187. ; typedef unsigned short                 MailLetterSystemFlags
  188.  
  189. ;  Values of MailLetterSystemFlags 
  190. ;  letter is available locally (either by nature or via cache) 
  191.  
  192. kMailIsLocalBit                    EQU        2
  193.  
  194. kMailIsLocalMask                EQU        $00000004
  195. ; typedef unsigned short                 MailLetterUserFlags
  196.  
  197.  
  198. kMailReadBit                    EQU        0                    ; this letter has been opened 
  199. kMailDontArchiveBit                EQU        1                    ; this letter is not to be archived either because it has already been archived or it should not be archived. 
  200. kMailInTrashBit                    EQU        2                    ; this letter is in trash 
  201. ;  Values of MailLetterUserFlags 
  202.  
  203. kMailReadMask                    EQU        $00000001
  204. kMailDontArchiveMask            EQU        $00000002
  205. kMailInTrashMask                EQU        $00000004
  206. MailLetterFlags            RECORD 0
  207. sysFlags                 ds.w    1                ; offset: $0 (0)
  208. userFlags                 ds.w    1                ; offset: $2 (2)
  209. sizeof                     EQU *                    ; size:   $4 (4)
  210.                         ENDR
  211. MailMaskedLetterFlags    RECORD 0
  212. flagMask                 ds        MailLetterFlags ; offset: $0 (0)        ;  flags that are to be set 
  213. flagValues                 ds        MailLetterFlags ; offset: $4 (4)        ;  and their values 
  214. sizeof                     EQU *                    ; size:   $8 (8)
  215.                         ENDR
  216.  
  217. kMailOriginalInReportBit        EQU        1
  218. kMailNonReceiptReportsBit        EQU        3
  219. kMailReceiptReportsBit            EQU        4
  220. kMailForwardedBit                EQU        5
  221. kMailPriorityBit                EQU        6
  222. kMailIsReportWithOriginalBit    EQU        8
  223. kMailIsReportBit                EQU        9
  224. kMailHasContentBit                EQU        10
  225. kMailHasSignatureBit            EQU        11
  226. kMailAuthenticatedBit            EQU        12
  227. kMailSentBit                    EQU        13
  228. kMailNativeContentBit            EQU        14
  229. kMailImageContentBit            EQU        15
  230. kMailStandardContentBit            EQU        16
  231. ;  Values of MailIndications 
  232.  
  233. kMailStandardContentMask        EQU        $00008000
  234. kMailImageContentMask            EQU        $00004000
  235. kMailNativeContentMask            EQU        $00002000
  236. kMailSentMask                    EQU        $00001000
  237. kMailAuthenticatedMask            EQU        $00000800
  238. kMailHasSignatureMask            EQU        $00000400
  239. kMailHasContentMask                EQU        $00000200
  240. kMailIsReportMask                EQU        $00000100
  241. kMailIsReportWithOriginalMask    EQU        $00000080
  242. kMailPriorityMask                EQU        $00000060
  243. kMailForwardedMask                EQU        $00000010
  244. kMailReceiptReportsMask            EQU        $00000008
  245. kMailNonReceiptReportsMask        EQU        $00000004
  246. kMailOriginalInReportMask        EQU        $00000003
  247. ; typedef unsigned long                 MailIndications
  248.  
  249. ;  values of the field originalInReport in MailIndications 
  250.  
  251. kMailNoOriginal                    EQU        0                    ; do not enclose original in reports 
  252. kMailEncloseOnNonReceipt        EQU        3                    ; enclose original in non-delivery reports 
  253. MailLetterID            RECORD 0
  254. f                         ds        IPMMsgID
  255. sizeof                     EQU *                    ; size:   $10 (16)
  256.                         ENDR
  257.  
  258.  
  259. MailTime                RECORD 0
  260. time                     ds.l    1                ; offset: $0 (0)        ;  current UTC(GMT) time 
  261. offset                     ds.l    1                ; offset: $4 (4)        ;  offset from GMT 
  262. sizeof                     EQU *                    ; size:   $8 (8)
  263.                         ENDR
  264. ;  innermost letter has nestingLevel 0 
  265. ; typedef unsigned short                 MailNestingLevel
  266.  
  267. MailRecipient            RECORD 0
  268. f                         ds        OCERecipient
  269. sizeof                     EQU *                    ; size:   $E (14)
  270.                         ENDR
  271.  
  272.  
  273. ; *************************************************************************************
  274.  
  275. kMailTextSegmentBit                EQU        0
  276. kMailPictSegmentBit                EQU        1
  277. kMailSoundSegmentBit            EQU        2
  278. kMailStyledTextSegmentBit        EQU        3
  279. kMailMovieSegmentBit            EQU        4
  280. ; typedef unsigned short                 MailSegmentMask
  281.  
  282. ;  Values of MailSegmentMask 
  283.  
  284. kMailTextSegmentMask            EQU        $00000001
  285. kMailPictSegmentMask            EQU        $00000002
  286. kMailSoundSegmentMask            EQU        $00000004
  287. kMailStyledTextSegmentMask        EQU        $00000008
  288. kMailMovieSegmentMask            EQU        $00000010
  289. ; typedef unsigned short                 MailSegmentType
  290.  
  291. ;  Values of MailSegmentType 
  292.  
  293. kMailInvalidSegmentType            EQU        0
  294. kMailTextSegmentType            EQU        1
  295. kMailPictSegmentType            EQU        2
  296. kMailSoundSegmentType            EQU        3
  297. kMailStyledTextSegmentType        EQU        4
  298. kMailMovieSegmentType            EQU        5
  299. ; *************************************************************************************
  300.  
  301. kMailErrorLogEntryVersion        EQU        $0101
  302. kMailMSAMErrorStringListID        EQU        128                    ; These 'STR#' resources should be 
  303. kMailMSAMActionStringListID        EQU        129                    ; in the PMSAM resource fork 
  304. ; typedef unsigned short                 MailLogErrorType
  305.  
  306. ;  Values of MailLogErrorType 
  307.  
  308. kMailELECorrectable                EQU        0
  309. kMailELEError                    EQU        1
  310. kMailELEWarning                    EQU        2
  311. kMailELEInformational            EQU        3
  312. ; typedef short                         MailLogErrorCode
  313.  
  314. ;  Values of MailLogErrorCode 
  315.  
  316. kMailMSAMErrorCode                EQU        0                    ; positive codes are indices into PMSAM defined strings 
  317. kMailMiscError                    EQU        -1                    ; negative codes are OCE defined 
  318. kMailNoModem                    EQU        -2                    ; modem required, but missing 
  319. MailErrorLogEntryInfo    RECORD 0
  320. version                     ds.w    1                ; offset: $0 (0)
  321. timeOccurred             ds.l    1                ; offset: $2 (2)        ;  do not fill in 
  322. reportingPMSAM             ds        Str31            ; offset: $6 (6)        ;  do not fill in 
  323. reportingMSAMSlot         ds        Str31            ; offset: $26 (38)        ;  do not fill in 
  324. errorType                 ds.w    1                ; offset: $46 (70)
  325. errorCode                 ds.w    1                ; offset: $48 (72)
  326. errorResource             ds.w    1                ; offset: $4A (74)        ;  resources are valid if 
  327. actionResource             ds.w    1                ; offset: $4C (76)        ;  errorCode = kMailMSAMErrorCode index starts from 1 
  328. filler                     ds.l    1                ; offset: $4E (78)
  329. filler2                     ds.w    1                ; offset: $52 (82)
  330. sizeof                     EQU *                    ; size:   $54 (84)
  331.                         ENDR
  332. ; *************************************************************************************
  333. ; typedef short                         MailBlockMode
  334.  
  335. ;  Values of MailBlockMode 
  336.  
  337. kMailFromStart                    EQU        1                    ; write data from offset calculated from 
  338. kMailFromLEOB                    EQU        2                    ; start of block, end of block, 
  339. kMailFromMark                    EQU        3                    ; or from the current mark 
  340. MailEnclosureInfo        RECORD 0
  341. enclosureName             ds.l    1                ; offset: $0 (0)
  342. catInfo                     ds.l    1                ; offset: $4 (4)
  343. comment                     ds.l    1                ; offset: $8 (8)
  344. icon                     ds.l    1                ; offset: $C (12)
  345. sizeof                     EQU *                    ; size:   $10 (16)
  346.                         ENDR
  347. ; *************************************************************************************
  348.  
  349. kOCESetupLocationNone            EQU        0                    ; disconnect state 
  350. kOCESetupLocationMax            EQU        8                    ; maximum location value 
  351. ; typedef char                             OCESetupLocation
  352.  
  353. ;  location state is a bitmask, 0x1=>1st location active, 
  354. ; * 0x2 => 2nd, 0x4 => 3rd, etc.
  355.  
  356. ; typedef UInt8                         MailLocationFlags
  357.  
  358. MailLocationInfo        RECORD 0
  359. location                 ds.b    1                ; offset: $0 (0)
  360. active                     ds.b    1                ; offset: $1 (1)
  361. sizeof                     EQU *                    ; size:   $2 (2)
  362.                         ENDR
  363. ; *************************************************************************************
  364. ;  Definitions for Personal MSAMs 
  365. ; *************************************************************************************
  366.  
  367. kMailEPPCMsgVersion                EQU        3
  368. MailEPPCMsg                RECORD 0
  369. version                     ds.w    1                ; offset: $0 (0)
  370. theSMCA                     ds.l    1                ; offset: $2 (2)        ;  for 'crsl', 'mdsl', 'dlsl', 'sndi', 'msgo', 'admn' 
  371.                          ORG 2
  372. sequenceNumber             ds.l    1                ; offset: $2 (2)        ;  for 'inqu', 'dlom' 
  373.                          ORG 2
  374. locationInfo             ds        MailLocationInfo ; offset: $2 (2)        ;  for 'locc' 
  375.                          ORG 6
  376. sizeof                     EQU *                    ; size:   $6 (6)
  377.                         ENDR
  378. ;  Values of OCE defined High Level Event message classes 
  379.  
  380. kMailEPPCCreateSlot                EQU        'crsl'
  381. kMailEPPCModifySlot                EQU        'mdsl'
  382. kMailEPPCDeleteSlot                EQU        'dlsl'
  383. kMailEPPCShutDown                EQU        'quit'
  384. kMailEPPCMailboxOpened            EQU        'mbop'
  385. kMailEPPCMailboxClosed            EQU        'mbcl'
  386. kMailEPPCMsgPending                EQU        'msgp'
  387. kMailEPPCSendImmediate            EQU        'sndi'
  388. kMailEPPCContinue                EQU        'cont'
  389. kMailEPPCSchedule                EQU        'sked'
  390. kMailEPPCAdmin                    EQU        'admn'
  391. kMailEPPCInQUpdate                EQU        'inqu'
  392. kMailEPPCMsgOpened                EQU        'msgo'
  393. kMailEPPCDeleteOutQMsg            EQU        'dlom'
  394. kMailEPPCWakeup                    EQU        'wkup'
  395. kMailEPPCLocationChanged        EQU        'locc'
  396. MailTimer                RECORD 0
  397. frequency                 ds.l    1                ; offset: $0 (0)        ;  how often to connect 
  398.                          ORG 0
  399. connectTime                 ds.l    1                ; offset: $0 (0)        ;  time since midnight 
  400. sizeof                     EQU *                    ; size:   $4 (4)
  401.                         ENDR
  402.  
  403. kMailTimerOff                    EQU        0                    ; control is off 
  404. kMailTimerTime                    EQU        1                    ; specifies connect time (relative to midnight) 
  405. kMailTimerFrequency                EQU        2                    ; specifies connect frequency 
  406. ; typedef Byte                             MailTimerKind
  407.  
  408. MailTimers                RECORD 0
  409. sendTimeKind             ds.b    1                ; offset: $0 (0)        ;  either kMailTimerTime or kMailTimerFrequency 
  410. receiveTimeKind             ds.b    1                ; offset: $1 (1)        ;  either kMailTimerTime or kMailTimerFrequency 
  411. send                     ds        MailTimer        ; offset: $2 (2)
  412. receive                     ds        MailTimer        ; offset: $6 (6)
  413. sizeof                     EQU *                    ; size:   $A (10)
  414.                         ENDR
  415.  
  416. MailStandardSlotInfoAttribute RECORD 0
  417. version                     ds.w    1                ; offset: $0 (0)
  418. active                     ds.b    1                ; offset: $2 (2)        ;  active if MailLocationMask(i) is set 
  419. padByte                     ds.b    1                ; offset: $3 (3)
  420. sendReceiveTimer         ds        MailTimers        ; offset: $4 (4)
  421. sizeof                     EQU *                    ; size:   $E (14)
  422.                         ENDR
  423. PMSAMGetMSAMRecordPB    RECORD 0
  424. qLink                     ds.l    1                ; offset: $0 (0)
  425. reservedH1                 ds.l    1                ; offset: $4 (4)
  426. reservedH2                 ds.l    1                ; offset: $8 (8)
  427. ioCompletion             ds.l    1                ; offset: $C (12)
  428. ioResult                 ds.w    1                ; offset: $10 (16)
  429. saveA5                     ds.l    1                ; offset: $12 (18)
  430. reqCode                     ds.w    1                ; offset: $16 (22)
  431. msamCID                     ds        CreationID        ; offset: $18 (24)
  432. sizeof                     EQU *                    ; size:   $20 (32)
  433.                         ENDR
  434. PMSAMOpenQueuesPB        RECORD 0
  435. qLink                     ds.l    1                ; offset: $0 (0)
  436. reservedH1                 ds.l    1                ; offset: $4 (4)
  437. reservedH2                 ds.l    1                ; offset: $8 (8)
  438. ioCompletion             ds.l    1                ; offset: $C (12)
  439. ioResult                 ds.w    1                ; offset: $10 (16)
  440. saveA5                     ds.l    1                ; offset: $12 (18)
  441. reqCode                     ds.w    1                ; offset: $16 (22)
  442. inQueueRef                 ds.l    1                ; offset: $18 (24)
  443. outQueueRef                 ds.l    1                ; offset: $1C (28)
  444. msamSlotID                 ds.w    1                ; offset: $20 (32)
  445. filler                     ds.l    2                ; offset: $22 (34)
  446. sizeof                     EQU *                    ; size:   $2A (42)
  447.                         ENDR
  448. ; typedef unsigned short                 PMSAMStatus
  449.  
  450. ;  Values of PMSAMStatus 
  451.  
  452. kPMSAMStatusPending                EQU        1                    ; for inQueue and outQueue 
  453. kPMSAMStatusError                EQU        2                    ; for inQueue and outQueue 
  454. kPMSAMStatusSending                EQU        3                    ; for outQueue only 
  455. kPMSAMStatusCaching                EQU        4                    ; for inQueue only 
  456. kPMSAMStatusSent                EQU        5                    ; for outQueue only 
  457. PMSAMSetStatusPB        RECORD 0
  458. qLink                     ds.l    1                ; offset: $0 (0)
  459. reservedH1                 ds.l    1                ; offset: $4 (4)
  460. reservedH2                 ds.l    1                ; offset: $8 (8)
  461. ioCompletion             ds.l    1                ; offset: $C (12)
  462. ioResult                 ds.w    1                ; offset: $10 (16)
  463. saveA5                     ds.l    1                ; offset: $12 (18)
  464. reqCode                     ds.w    1                ; offset: $16 (22)
  465. queueRef                 ds.l    1                ; offset: $18 (24)
  466. seqNum                     ds.l    1                ; offset: $1C (28)
  467. msgHint                     ds.l    1                ; offset: $20 (32)        ;  for posting cache error,set this to 0 when report outq status 
  468. status                     ds.w    1                ; offset: $24 (36)
  469. sizeof                     EQU *                    ; size:   $26 (38)
  470.                         ENDR
  471. PMSAMLogErrorPB            RECORD 0
  472. qLink                     ds.l    1                ; offset: $0 (0)
  473. reservedH1                 ds.l    1                ; offset: $4 (4)
  474. reservedH2                 ds.l    1                ; offset: $8 (8)
  475. ioCompletion             ds.l    1                ; offset: $C (12)
  476. ioResult                 ds.w    1                ; offset: $10 (16)
  477. saveA5                     ds.l    1                ; offset: $12 (18)
  478. reqCode                     ds.w    1                ; offset: $16 (22)
  479. msamSlotID                 ds.w    1                ; offset: $18 (24)        ;  0 for PMSAM errors 
  480. logEntry                 ds.l    1                ; offset: $1A (26)
  481. filler                     ds.l    2                ; offset: $1E (30)
  482. sizeof                     EQU *                    ; size:   $26 (38)
  483.                         ENDR
  484. ; ***************************************************************************************
  485.  
  486. kMailMsgSummaryVersion            EQU        1
  487. MailMasterData            RECORD 0
  488. attrMask                 ds.l    1                ; offset: $0 (0)        ;  indicates attributes present in MsgSummary 
  489. messageID                 ds        MailLetterID    ; offset: $4 (4)
  490. replyID                     ds        MailLetterID    ; offset: $14 (20)
  491. conversationID             ds        MailLetterID    ; offset: $24 (36)
  492. sizeof                     EQU *                    ; size:   $34 (52)
  493.                         ENDR
  494. ;  Values for addressedToMe in struct MailCoreData 
  495.  
  496. kAddressedAs_TO                    EQU        $01
  497. kAddressedAs_CC                    EQU        $02
  498. kAddressedAs_BCC                EQU        $04
  499. MailCoreData            RECORD 0
  500. letterFlags                 ds        MailLetterFlags ; offset: $0 (0)
  501. messageSize                 ds.l    1                ; offset: $4 (4)
  502. letterIndications         ds.l    1                ; offset: $8 (8)
  503. messageType                 ds        OCECreatorType ; offset: $C (12)
  504. sendTime                 ds        MailTime        ; offset: $14 (20)
  505. messageFamily             ds.l    1                ; offset: $1C (28)
  506. reserved                 ds.b    1                ; offset: $20 (32)
  507. addressedToMe             ds.b    1                ; offset: $21 (33)
  508. agentInfo                 ds.b    6                ; offset: $22 (34)        ;  6 bytes of special info [set to zero] 
  509. ;  these are variable length and even padded 
  510. sender                     ds        RString32        ; offset: $28 (40)        ;  recipient's entityName (trunc)
  511. subject                     ds        RString32        ; offset: $4C (76)        ;  subject maybe truncated 
  512. sizeof                     EQU *                    ; size:   $70 (112)
  513.                         ENDR
  514. MSAMMsgSummary            RECORD 0
  515. version                     ds.w    1                ; offset: $0 (0)        ;  following flags are defaulted by Toolbox 
  516. msgDeleted                 ds.b    1                ; offset: $2 (2)        ;  true if msg is to be deleted by PMSAM 
  517. msgUpdated                 ds.b    1                ; offset: $3 (3)        ;  true if msgSummary was updated by MailManager 
  518. msgCached                 ds.b    1                ; offset: $4 (4)        ;  true if msg is in the slot's InQueue 
  519. padByte                     ds.b    1                ; offset: $5 (5)
  520. masterData                 ds        MailMasterData ; offset: $6 (6)
  521. coreData                 ds        MailCoreData    ; offset: $3A (58)
  522. sizeof                     EQU *                    ; size:   $AA (170)
  523.                         ENDR
  524. ;  PMSAM can put up to 128 bytes of private msg summary data 
  525.  
  526. kMailMaxPMSAMMsgSummaryData        EQU        128
  527. PMSAMCreateMsgSummaryPB    RECORD 0
  528. qLink                     ds.l    1                ; offset: $0 (0)
  529. reservedH1                 ds.l    1                ; offset: $4 (4)
  530. reservedH2                 ds.l    1                ; offset: $8 (8)
  531. ioCompletion             ds.l    1                ; offset: $C (12)
  532. ioResult                 ds.w    1                ; offset: $10 (16)
  533. saveA5                     ds.l    1                ; offset: $12 (18)
  534. reqCode                     ds.w    1                ; offset: $16 (22)
  535. inQueueRef                 ds.l    1                ; offset: $18 (24)
  536. seqNum                     ds.l    1                ; offset: $1C (28)        ;  <- seq of the new message 
  537. msgSummary                 ds.l    1                ; offset: $20 (32)        ;  attributes and mask filled in 
  538. buffer                     ds.l    1                ; offset: $24 (36)        ;  PMSAM specific data to be appended 
  539. sizeof                     EQU *                    ; size:   $28 (40)
  540.                         ENDR
  541.  
  542. PMSAMPutMsgSummaryPB    RECORD 0
  543. qLink                     ds.l    1                ; offset: $0 (0)
  544. reservedH1                 ds.l    1                ; offset: $4 (4)
  545. reservedH2                 ds.l    1                ; offset: $8 (8)
  546. ioCompletion             ds.l    1                ; offset: $C (12)
  547. ioResult                 ds.w    1                ; offset: $10 (16)
  548. saveA5                     ds.l    1                ; offset: $12 (18)
  549. reqCode                     ds.w    1                ; offset: $16 (22)
  550. inQueueRef                 ds.l    1                ; offset: $18 (24)
  551. seqNum                     ds.l    1                ; offset: $1C (28)
  552. letterFlags                 ds.l    1                ; offset: $20 (32)        ;  if not nil, then set msgStoreFlags 
  553. buffer                     ds.l    1                ; offset: $24 (36)        ;  PMSAM specific data to be overwritten 
  554. sizeof                     EQU *                    ; size:   $28 (40)
  555.                         ENDR
  556. PMSAMGetMsgSummaryPB    RECORD 0
  557. qLink                     ds.l    1                ; offset: $0 (0)
  558. reservedH1                 ds.l    1                ; offset: $4 (4)
  559. reservedH2                 ds.l    1                ; offset: $8 (8)
  560. ioCompletion             ds.l    1                ; offset: $C (12)
  561. ioResult                 ds.w    1                ; offset: $10 (16)
  562. saveA5                     ds.l    1                ; offset: $12 (18)
  563. reqCode                     ds.w    1                ; offset: $16 (22)
  564. inQueueRef                 ds.l    1                ; offset: $18 (24)
  565. seqNum                     ds.l    1                ; offset: $1C (28)
  566. msgSummary                 ds.l    1                ; offset: $20 (32)        ;  if not nil, then read in the msgSummary 
  567. buffer                     ds.l    1                ; offset: $24 (36)        ;  PMSAM specific data to be read 
  568. msgSummaryOffset         ds.w    1                ; offset: $28 (40)        ;  offset of PMSAM specific data from start of MsgSummary 
  569. sizeof                     EQU *                    ; size:   $2A (42)
  570.                         ENDR
  571. ; ***************************************************************************************
  572. ;  Definitions for Server MSAMs 
  573. ; *************************************************************************************
  574. ; typedef unsigned short                 SMSAMAdminCode
  575.  
  576. ;  Values of SMSAMAdminCode 
  577.  
  578. kSMSAMNotifyFwdrSetupChange        EQU        1
  579. kSMSAMNotifyFwdrNameChange        EQU        2
  580. kSMSAMNotifyFwdrPwdChange        EQU        3
  581. kSMSAMGetDynamicFwdrParams        EQU        4
  582. ; typedef unsigned long                 SMSAMSlotChanges
  583.  
  584.  
  585. kSMSAMFwdrHomeInternetChangedBit EQU    0
  586. kSMSAMFwdrConnectedToChangedBit    EQU        1
  587. kSMSAMFwdrForeignRLIsChangedBit    EQU        2
  588. kSMSAMFwdrMnMServerChangedBit    EQU        3
  589. ;  Values of SMSAMSlotChanges 
  590.  
  591. kSMSAMFwdrEverythingChangedMask    EQU        -1
  592. kSMSAMFwdrHomeInternetChangedMask EQU    $00000001
  593. kSMSAMFwdrConnectedToChangedMask EQU    $00000002
  594. kSMSAMFwdrForeignRLIsChangedMask EQU    $00000004
  595. kSMSAMFwdrMnMServerChangedMask    EQU        $00000008
  596. ;  kSMSAMNotifyFwdrSetupChange 
  597. SMSAMSetupChange        RECORD 0
  598. whatChanged                 ds.l    1                ; offset: $0 (0)        ;   --> bitmap of what parameters changed 
  599. serverHint                 ds        AddrBlock        ; offset: $4 (4)        ;   --> try this ADAP server first 
  600. sizeof                     EQU *                    ; size:   $8 (8)
  601.                         ENDR
  602. ;  kSMSAMNotifyFwdrNameChange 
  603. SMSAMNameChange            RECORD 0
  604. newName                     ds        RString            ; offset: $0 (0)        ;   --> msams new name 
  605. serverHint                 ds        AddrBlock        ; offset: $104 (260)    ;   --> try this ADAP server first 
  606. sizeof                     EQU *                    ; size:   $108 (264)
  607.                         ENDR
  608. ;  kSMSAMNotifyFwdrPasswordChange 
  609. SMSAMPasswordChange        RECORD 0
  610. newPassword                 ds        RString            ; offset: $0 (0)        ;   --> msams new password 
  611. serverHint                 ds        AddrBlock        ; offset: $104 (260)    ;   --> try this ADAP server first 
  612. sizeof                     EQU *                    ; size:   $108 (264)
  613.                         ENDR
  614. ;  kSMSAMGetDynamicFwdrParams 
  615. SMSAMDynamicParams        RECORD 0
  616. curDiskUsed                 ds.l    1                ; offset: $0 (0)        ;  <--  amount of disk space used by msam 
  617. curMemoryUsed             ds.l    1                ; offset: $4 (4)        ;  <--  amount of memory used by msam 
  618. sizeof                     EQU *                    ; size:   $8 (8)
  619.                         ENDR
  620. SMSAMAdminEPPCRequest    RECORD 0
  621. adminCode                 ds.w    1                ; offset: $0 (0)
  622. setupChange                 ds        SMSAMSetupChange ; offset: $2 (2)
  623.                          ORG 2
  624. nameChange                 ds        SMSAMNameChange ; offset: $2 (2)
  625.                          ORG 2
  626. passwordChange             ds        SMSAMPasswordChange ; offset: $2 (2)
  627.                          ORG 2
  628. dynamicParams             ds        SMSAMDynamicParams ; offset: $2 (2)
  629.                          ORG 266
  630. sizeof                     EQU *                    ; size:   $10A (266)
  631.                         ENDR
  632. SMSAMSetupPB            RECORD 0
  633. qLink                     ds.l    1                ; offset: $0 (0)
  634. reservedH1                 ds.l    1                ; offset: $4 (4)
  635. reservedH2                 ds.l    1                ; offset: $8 (8)
  636. ioCompletion             ds.l    1                ; offset: $C (12)
  637. ioResult                 ds.w    1                ; offset: $10 (16)
  638. saveA5                     ds.l    1                ; offset: $12 (18)
  639. reqCode                     ds.w    1                ; offset: $16 (22)
  640. serverMSAM                 ds.l    1                ; offset: $18 (24)
  641. password                 ds.l    1                ; offset: $1C (28)
  642. gatewayType                 ds.l    1                ; offset: $20 (32)
  643. gatewayTypeDescription     ds.l    1                ; offset: $24 (36)
  644. catalogServerHint         ds        AddrBlock        ; offset: $28 (40)
  645. sizeof                     EQU *                    ; size:   $2C (44)
  646.                         ENDR
  647. SMSAMStartupPB            RECORD 0
  648. qLink                     ds.l    1                ; offset: $0 (0)
  649. reservedH1                 ds.l    1                ; offset: $4 (4)
  650. reservedH2                 ds.l    1                ; offset: $8 (8)
  651. ioCompletion             ds.l    1                ; offset: $C (12)
  652. ioResult                 ds.w    1                ; offset: $10 (16)
  653. saveA5                     ds.l    1                ; offset: $12 (18)
  654. reqCode                     ds.w    1                ; offset: $16 (22)
  655. msamIdentity             ds.l    1                ; offset: $18 (24)
  656. queueRef                 ds.l    1                ; offset: $1C (28)
  657. sizeof                     EQU *                    ; size:   $20 (32)
  658.                         ENDR
  659. SMSAMShutdownPB            RECORD 0
  660. qLink                     ds.l    1                ; offset: $0 (0)
  661. reservedH1                 ds.l    1                ; offset: $4 (4)
  662. reservedH2                 ds.l    1                ; offset: $8 (8)
  663. ioCompletion             ds.l    1                ; offset: $C (12)
  664. ioResult                 ds.w    1                ; offset: $10 (16)
  665. saveA5                     ds.l    1                ; offset: $12 (18)
  666. reqCode                     ds.w    1                ; offset: $16 (22)
  667. queueRef                 ds.l    1                ; offset: $18 (24)
  668. sizeof                     EQU *                    ; size:   $1C (28)
  669.                         ENDR
  670. ; ***************************************************************************************
  671. ;  Definitions for reading and writing MSAM Letters 
  672. ; ***************************************************************************************
  673. MSAMEnumeratePB            RECORD 0
  674. qLink                     ds.l    1                ; offset: $0 (0)
  675. reservedH1                 ds.l    1                ; offset: $4 (4)
  676. reservedH2                 ds.l    1                ; offset: $8 (8)
  677. ioCompletion             ds.l    1                ; offset: $C (12)
  678. ioResult                 ds.w    1                ; offset: $10 (16)
  679. saveA5                     ds.l    1                ; offset: $12 (18)
  680. reqCode                     ds.w    1                ; offset: $16 (22)
  681. queueRef                 ds.l    1                ; offset: $18 (24)
  682. startSeqNum                 ds.l    1                ; offset: $1C (28)
  683. nextSeqNum                 ds.l    1                ; offset: $20 (32)
  684. ;  buffer contains a Mail Reply. Each tuple is a MSAMEnumerateInQReply when enumerating the inQueue MSAMEnumerateOutQReply when enumerating the outQueue 
  685. buffer                     ds        MailBuffer        ; offset: $24 (36)
  686. sizeof                     EQU *                    ; size:   $30 (48)
  687.                         ENDR
  688. MSAMEnumerateInQReply    RECORD 0
  689. seqNum                     ds.l    1                ; offset: $0 (0)
  690. msgDeleted                 ds.b    1                ; offset: $4 (4)        ;  true if msg is to be deleted by PMSAM 
  691. msgUpdated                 ds.b    1                ; offset: $5 (5)        ;  true if MsgSummary has been updated by TB 
  692. msgCached                 ds.b    1                ; offset: $6 (6)        ;  true if msg is in the incoming queue 
  693. padByte                     ds.b    1                ; offset: $7 (7)
  694. sizeof                     EQU *                    ; size:   $8 (8)
  695.                         ENDR
  696. MSAMEnumerateOutQReply    RECORD 0
  697. seqNum                     ds.l    1                ; offset: $0 (0)
  698. done                     ds.b    1                ; offset: $4 (4)        ;  true if all responsible recipients have been processed 
  699. priority                 ds.b    1                ; offset: $5 (5)
  700. msgFamily                 ds.l    1                ; offset: $6 (6)
  701. approxSize                 ds.l    1                ; offset: $A (10)
  702. tunnelForm                 ds.b    1                ; offset: $E (14)        ;  true if this letter has to be tunnelled 
  703. padByte                     ds.b    1                ; offset: $F (15)
  704. nextHop                     ds        NetworkSpec        ; offset: $10 (16)        ;  valid if tunnelForm is true 
  705. msgType                     ds        OCECreatorType ; offset: $34 (52)
  706. sizeof                     EQU *                    ; size:   $3C (60)
  707.                         ENDR
  708. MSAMDeletePB            RECORD 0
  709. qLink                     ds.l    1                ; offset: $0 (0)
  710. reservedH1                 ds.l    1                ; offset: $4 (4)
  711. reservedH2                 ds.l    1                ; offset: $8 (8)
  712. ioCompletion             ds.l    1                ; offset: $C (12)
  713. ioResult                 ds.w    1                ; offset: $10 (16)
  714. saveA5                     ds.l    1                ; offset: $12 (18)
  715. reqCode                     ds.w    1                ; offset: $16 (22)
  716. queueRef                 ds.l    1                ; offset: $18 (24)
  717. seqNum                     ds.l    1                ; offset: $1C (28)
  718. msgOnly                     ds.b    1                ; offset: $20 (32)        ;  only valid for PMSAM & inQueue 
  719. ;  set true to delete message but not msgSummary 
  720. padByte                     ds.b    1                ; offset: $21 (33)
  721. ;  only valid for SMSAM & tunnelled messages 
  722. result                     ds.w    1                ; offset: $22 (34)
  723. sizeof                     EQU *                    ; size:   $24 (36)
  724.                         ENDR
  725. MSAMOpenPB                RECORD 0
  726. qLink                     ds.l    1                ; offset: $0 (0)
  727. reservedH1                 ds.l    1                ; offset: $4 (4)
  728. reservedH2                 ds.l    1                ; offset: $8 (8)
  729. ioCompletion             ds.l    1                ; offset: $C (12)
  730. ioResult                 ds.w    1                ; offset: $10 (16)
  731. saveA5                     ds.l    1                ; offset: $12 (18)
  732. reqCode                     ds.w    1                ; offset: $16 (22)
  733. queueRef                 ds.l    1                ; offset: $18 (24)
  734. seqNum                     ds.l    1                ; offset: $1C (28)
  735. mailMsgRef                 ds.l    1                ; offset: $20 (32)
  736. sizeof                     EQU *                    ; size:   $24 (36)
  737.                         ENDR
  738. MSAMOpenNestedPB        RECORD 0
  739. qLink                     ds.l    1                ; offset: $0 (0)
  740. reservedH1                 ds.l    1                ; offset: $4 (4)
  741. reservedH2                 ds.l    1                ; offset: $8 (8)
  742. ioCompletion             ds.l    1                ; offset: $C (12)
  743. ioResult                 ds.w    1                ; offset: $10 (16)
  744. saveA5                     ds.l    1                ; offset: $12 (18)
  745. reqCode                     ds.w    1                ; offset: $16 (22)
  746. mailMsgRef                 ds.l    1                ; offset: $18 (24)
  747. nestedRef                 ds.l    1                ; offset: $1C (28)
  748. sizeof                     EQU *                    ; size:   $20 (32)
  749.                         ENDR
  750. MSAMClosePB                RECORD 0
  751. qLink                     ds.l    1                ; offset: $0 (0)
  752. reservedH1                 ds.l    1                ; offset: $4 (4)
  753. reservedH2                 ds.l    1                ; offset: $8 (8)
  754. ioCompletion             ds.l    1                ; offset: $C (12)
  755. ioResult                 ds.w    1                ; offset: $10 (16)
  756. saveA5                     ds.l    1                ; offset: $12 (18)
  757. reqCode                     ds.w    1                ; offset: $16 (22)
  758. mailMsgRef                 ds.l    1                ; offset: $18 (24)
  759. sizeof                     EQU *                    ; size:   $1C (28)
  760.                         ENDR
  761. MSAMGetMsgHeaderPB        RECORD 0
  762. qLink                     ds.l    1                ; offset: $0 (0)
  763. reservedH1                 ds.l    1                ; offset: $4 (4)
  764. reservedH2                 ds.l    1                ; offset: $8 (8)
  765. ioCompletion             ds.l    1                ; offset: $C (12)
  766. ioResult                 ds.w    1                ; offset: $10 (16)
  767. saveA5                     ds.l    1                ; offset: $12 (18)
  768. reqCode                     ds.w    1                ; offset: $16 (22)
  769. mailMsgRef                 ds.l    1                ; offset: $18 (24)
  770. selector                 ds.b    1                ; offset: $1C (28)
  771. filler1                     ds.b    1                ; offset: $1D (29)
  772. offset                     ds.l    1                ; offset: $1E (30)
  773. buffer                     ds        MailBuffer        ; offset: $22 (34)
  774. remaining                 ds.l    1                ; offset: $2E (46)
  775. sizeof                     EQU *                    ; size:   $32 (50)
  776.                         ENDR
  777. ;     MSAMGetAttributesPB.buffer returned will contain the attribute values of 
  778. ;    the attributes indicated in responseMask, 
  779. ;    from the attribute indicated by the least significant bit set
  780. ;    to the attribute indicated by the most significant bit set.
  781. ;    Note that recipients - from, to, cc, bcc cannot be read using
  782. ;    this call. Use GetRecipients to read these. 
  783. ;
  784.  
  785. MSAMGetAttributesPB        RECORD 0
  786. qLink                     ds.l    1                ; offset: $0 (0)
  787. reservedH1                 ds.l    1                ; offset: $4 (4)
  788. reservedH2                 ds.l    1                ; offset: $8 (8)
  789. ioCompletion             ds.l    1                ; offset: $C (12)
  790. ioResult                 ds.w    1                ; offset: $10 (16)
  791. saveA5                     ds.l    1                ; offset: $12 (18)
  792. reqCode                     ds.w    1                ; offset: $16 (22)
  793. mailMsgRef                 ds.l    1                ; offset: $18 (24)
  794. requestMask                 ds.l    1                ; offset: $1C (28)        ;  kMailIndicationsBit thru kMailSubjectBit 
  795. buffer                     ds        MailBuffer        ; offset: $20 (32)
  796. responseMask             ds.l    1                ; offset: $2C (44)
  797. more                     ds.b    1                ; offset: $30 (48)
  798. filler1                     ds.b    1                ; offset: $31 (49)
  799. sizeof                     EQU *                    ; size:   $32 (50)
  800.                         ENDR
  801. ;  attrID value to get resolved recipient list 
  802.  
  803. kMailResolvedList                EQU        0
  804. MailOriginalRecipient    RECORD 0
  805. index                     ds.w    1                ; offset: $0 (0)
  806. sizeof                     EQU *                    ; size:   $2 (2)
  807.                         ENDR
  808. ;  Followed by OCEPackedRecipient 
  809.  
  810.  
  811. MailResolvedRecipient    RECORD 0
  812. index                     ds.w    1                ; offset: $0 (0)
  813. recipientFlags             ds.w    1                ; offset: $2 (2)
  814. responsible                 ds.b    1                ; offset: $4 (4)
  815. padByte                     ds.b    1                ; offset: $5 (5)
  816. sizeof                     EQU *                    ; size:   $6 (6)
  817.                         ENDR
  818. ;  Followed by OCEPackedRecipient 
  819.  
  820.  
  821. ;      MSAMGetRecipientsPB.buffer contains a Mail Reply. Each tuple is a
  822. ;    MailOriginalRecipient if getting original recipients 
  823. ;                            ie the attrID is kMail[From, To, Cc, Bcc]Bit
  824. ;    MailResolvedRecipient if getting resolved reicpients
  825. ;                            ie the attrID is kMailResolvedList
  826. ;    Both tuples are word alligned.  
  827. ;
  828.  
  829. MSAMGetRecipientsPB        RECORD 0
  830. qLink                     ds.l    1                ; offset: $0 (0)
  831. reservedH1                 ds.l    1                ; offset: $4 (4)
  832. reservedH2                 ds.l    1                ; offset: $8 (8)
  833. ioCompletion             ds.l    1                ; offset: $C (12)
  834. ioResult                 ds.w    1                ; offset: $10 (16)
  835. saveA5                     ds.l    1                ; offset: $12 (18)
  836. reqCode                     ds.w    1                ; offset: $16 (22)
  837. mailMsgRef                 ds.l    1                ; offset: $18 (24)
  838. attrID                     ds.w    1                ; offset: $1C (28)        ;  kMailFromBit thru kMailBccBit 
  839. startIndex                 ds.w    1                ; offset: $1E (30)        ;  starts at 1 
  840. buffer                     ds        MailBuffer        ; offset: $20 (32)
  841. nextIndex                 ds.w    1                ; offset: $2C (44)
  842. more                     ds.b    1                ; offset: $2E (46)
  843. filler1                     ds.b    1                ; offset: $2F (47)
  844. sizeof                     EQU *                    ; size:   $30 (48)
  845.                         ENDR
  846. MSAMGetContentPB        RECORD 0
  847. qLink                     ds.l    1                ; offset: $0 (0)
  848. reservedH1                 ds.l    1                ; offset: $4 (4)
  849. reservedH2                 ds.l    1                ; offset: $8 (8)
  850. ioCompletion             ds.l    1                ; offset: $C (12)
  851. ioResult                 ds.w    1                ; offset: $10 (16)
  852. saveA5                     ds.l    1                ; offset: $12 (18)
  853. reqCode                     ds.w    1                ; offset: $16 (22)
  854. mailMsgRef                 ds.l    1                ; offset: $18 (24)
  855. segmentMask                 ds.w    1                ; offset: $1C (28)
  856. buffer                     ds        MailBuffer        ; offset: $1E (30)
  857. textScrap                 ds.l    1                ; offset: $2A (42)
  858. script                     ds.w    1                ; offset: $2E (46)
  859. segmentType                 ds.w    1                ; offset: $30 (48)
  860. endOfScript                 ds.b    1                ; offset: $32 (50)
  861. endOfSegment             ds.b    1                ; offset: $33 (51)
  862. endOfContent             ds.b    1                ; offset: $34 (52)
  863. filler1                     ds.b    1                ; offset: $35 (53)
  864. segmentLength             ds.l    1                ; offset: $36 (54)        ;  NEW: <-  valid first call in a segment 
  865. segmentID                 ds.l    1                ; offset: $3A (58)        ;  NEW: <-> identifier for this segment 
  866. sizeof                     EQU *                    ; size:   $3E (62)
  867.                         ENDR
  868. MSAMGetEnclosurePB        RECORD 0
  869. qLink                     ds.l    1                ; offset: $0 (0)
  870. reservedH1                 ds.l    1                ; offset: $4 (4)
  871. reservedH2                 ds.l    1                ; offset: $8 (8)
  872. ioCompletion             ds.l    1                ; offset: $C (12)
  873. ioResult                 ds.w    1                ; offset: $10 (16)
  874. saveA5                     ds.l    1                ; offset: $12 (18)
  875. reqCode                     ds.w    1                ; offset: $16 (22)
  876. mailMsgRef                 ds.l    1                ; offset: $18 (24)
  877. contentEnclosure         ds.b    1                ; offset: $1C (28)
  878. padByte                     ds.b    1                ; offset: $1D (29)
  879. buffer                     ds        MailBuffer        ; offset: $1E (30)
  880. endOfFile                 ds.b    1                ; offset: $2A (42)
  881. endOfEnclosures             ds.b    1                ; offset: $2B (43)
  882. sizeof                     EQU *                    ; size:   $2C (44)
  883.                         ENDR
  884. MailBlockInfo            RECORD 0
  885. blockType                 ds        OCECreatorType ; offset: $0 (0)
  886. offset                     ds.l    1                ; offset: $8 (8)
  887. blockLength                 ds.l    1                ; offset: $C (12)
  888. sizeof                     EQU *                    ; size:   $10 (16)
  889.                         ENDR
  890. MSAMEnumerateBlocksPB    RECORD 0
  891. qLink                     ds.l    1                ; offset: $0 (0)
  892. reservedH1                 ds.l    1                ; offset: $4 (4)
  893. reservedH2                 ds.l    1                ; offset: $8 (8)
  894. ioCompletion             ds.l    1                ; offset: $C (12)
  895. ioResult                 ds.w    1                ; offset: $10 (16)
  896. saveA5                     ds.l    1                ; offset: $12 (18)
  897. reqCode                     ds.w    1                ; offset: $16 (22)
  898. mailMsgRef                 ds.l    1                ; offset: $18 (24)
  899. startIndex                 ds.w    1                ; offset: $1C (28)        ;  starts at 1 
  900. buffer                     ds        MailBuffer        ; offset: $1E (30)
  901. ;      buffer contains a Mail Reply. Each tuple is a MailBlockInfo 
  902. nextIndex                 ds.w    1                ; offset: $2A (42)
  903. more                     ds.b    1                ; offset: $2C (44)
  904. filler1                     ds.b    1                ; offset: $2D (45)
  905. sizeof                     EQU *                    ; size:   $2E (46)
  906.                         ENDR
  907. MSAMGetBlockPB            RECORD 0
  908. qLink                     ds.l    1                ; offset: $0 (0)
  909. reservedH1                 ds.l    1                ; offset: $4 (4)
  910. reservedH2                 ds.l    1                ; offset: $8 (8)
  911. ioCompletion             ds.l    1                ; offset: $C (12)
  912. ioResult                 ds.w    1                ; offset: $10 (16)
  913. saveA5                     ds.l    1                ; offset: $12 (18)
  914. reqCode                     ds.w    1                ; offset: $16 (22)
  915. mailMsgRef                 ds.l    1                ; offset: $18 (24)
  916. blockType                 ds        OCECreatorType ; offset: $1C (28)
  917. blockIndex                 ds.w    1                ; offset: $24 (36)
  918. buffer                     ds        MailBuffer        ; offset: $26 (38)
  919. dataOffset                 ds.l    1                ; offset: $32 (50)
  920. endOfBlock                 ds.b    1                ; offset: $36 (54)
  921. padByte                     ds.b    1                ; offset: $37 (55)
  922. remaining                 ds.l    1                ; offset: $38 (56)
  923. sizeof                     EQU *                    ; size:   $3C (60)
  924.                         ENDR
  925. ;  YOU SHOULD BE USING THE NEW FORM OF MARK RECIPIENTS
  926. ; * THIS VERSION IS MUCH SLOWER AND KEPT FOR COMPATIBILITY
  927. ; * REASONS.
  928. ;
  929.  
  930. ;  not valid for tunnel form letters 
  931. MSAMMarkRecipientsPB    RECORD 0
  932. qLink                     ds.l    1                ; offset: $0 (0)
  933. reservedH1                 ds.l    1                ; offset: $4 (4)
  934. reservedH2                 ds.l    1                ; offset: $8 (8)
  935. ioCompletion             ds.l    1                ; offset: $C (12)
  936. ioResult                 ds.w    1                ; offset: $10 (16)
  937. saveA5                     ds.l    1                ; offset: $12 (18)
  938. reqCode                     ds.w    1                ; offset: $16 (22)
  939. queueRef                 ds.l    1                ; offset: $18 (24)
  940. seqNum                     ds.l    1                ; offset: $1C (28)
  941. buffer                     ds        MailBuffer        ; offset: $20 (32)        ;      buffer contains a Mail Reply. Each tuple is an unsigned short, the index of a recipient to be marked. 
  942. sizeof                     EQU *                    ; size:   $2C (44)
  943.                         ENDR
  944. ;  
  945. ; * same as MSAMMarkRecipients except it takes a mailMsgRef instead of 
  946. ; * queueRef, seqNum 
  947. ;
  948.  
  949. ;  not valid for tunnel form letters 
  950. MSAMnMarkRecipientsPB    RECORD 0
  951. qLink                     ds.l    1                ; offset: $0 (0)
  952. reservedH1                 ds.l    1                ; offset: $4 (4)
  953. reservedH2                 ds.l    1                ; offset: $8 (8)
  954. ioCompletion             ds.l    1                ; offset: $C (12)
  955. ioResult                 ds.w    1                ; offset: $10 (16)
  956. saveA5                     ds.l    1                ; offset: $12 (18)
  957. reqCode                     ds.w    1                ; offset: $16 (22)
  958. mailMsgRef                 ds.l    1                ; offset: $18 (24)
  959. buffer                     ds        MailBuffer        ; offset: $1C (28)        ;      buffer contains a Mail Reply. Each tuple is an unsigned short, the index of a recipient to be marked. 
  960. sizeof                     EQU *                    ; size:   $28 (40)
  961.                         ENDR
  962. ; ***************************************************************************************
  963. MSAMCreatePB            RECORD 0
  964. qLink                     ds.l    1                ; offset: $0 (0)
  965. reservedH1                 ds.l    1                ; offset: $4 (4)
  966. reservedH2                 ds.l    1                ; offset: $8 (8)
  967. ioCompletion             ds.l    1                ; offset: $C (12)
  968. ioResult                 ds.w    1                ; offset: $10 (16)
  969. saveA5                     ds.l    1                ; offset: $12 (18)
  970. reqCode                     ds.w    1                ; offset: $16 (22)
  971. queueRef                 ds.l    1                ; offset: $18 (24)
  972. asLetter                 ds.b    1                ; offset: $1C (28)        ;  indicate if we should create as letter or msg 
  973. filler1                     ds.b    1                ; offset: $1D (29)
  974. msgType                     ds        IPMMsgType        ; offset: $1E (30)        ;  up to application discretion: must be of IPMSenderTag  kIPMOSFormatType for asLetter=true 
  975. refCon                     ds.l    1                ; offset: $42 (66)        ;  for messages only 
  976. seqNum                     ds.l    1                ; offset: $46 (70)        ;  set if creating message in the inQueue 
  977. tunnelForm                 ds.b    1                ; offset: $4A (74)        ;  if true tunnelForm else newForm 
  978. bccRecipients             ds.b    1                ; offset: $4B (75)        ;  true if creating letter with bcc recipients 
  979. newRef                     ds.l    1                ; offset: $4C (76)
  980. sizeof                     EQU *                    ; size:   $50 (80)
  981.                         ENDR
  982. MSAMBeginNestedPB        RECORD 0
  983. qLink                     ds.l    1                ; offset: $0 (0)
  984. reservedH1                 ds.l    1                ; offset: $4 (4)
  985. reservedH2                 ds.l    1                ; offset: $8 (8)
  986. ioCompletion             ds.l    1                ; offset: $C (12)
  987. ioResult                 ds.w    1                ; offset: $10 (16)
  988. saveA5                     ds.l    1                ; offset: $12 (18)
  989. reqCode                     ds.w    1                ; offset: $16 (22)
  990. mailMsgRef                 ds.l    1                ; offset: $18 (24)
  991. refCon                     ds.l    1                ; offset: $1C (28)        ;  for messages only 
  992. msgType                     ds        IPMMsgType        ; offset: $20 (32)
  993. sizeof                     EQU *                    ; size:   $44 (68)
  994.                         ENDR
  995. MSAMEndNestedPB            RECORD 0
  996. qLink                     ds.l    1                ; offset: $0 (0)
  997. reservedH1                 ds.l    1                ; offset: $4 (4)
  998. reservedH2                 ds.l    1                ; offset: $8 (8)
  999. ioCompletion             ds.l    1                ; offset: $C (12)
  1000. ioResult                 ds.w    1                ; offset: $10 (16)
  1001. saveA5                     ds.l    1                ; offset: $12 (18)
  1002. reqCode                     ds.w    1                ; offset: $16 (22)
  1003. mailMsgRef                 ds.l    1                ; offset: $18 (24)
  1004. sizeof                     EQU *                    ; size:   $1C (28)
  1005.                         ENDR
  1006. MSAMSubmitPB            RECORD 0
  1007. qLink                     ds.l    1                ; offset: $0 (0)
  1008. reservedH1                 ds.l    1                ; offset: $4 (4)
  1009. reservedH2                 ds.l    1                ; offset: $8 (8)
  1010. ioCompletion             ds.l    1                ; offset: $C (12)
  1011. ioResult                 ds.w    1                ; offset: $10 (16)
  1012. saveA5                     ds.l    1                ; offset: $12 (18)
  1013. reqCode                     ds.w    1                ; offset: $16 (22)
  1014. mailMsgRef                 ds.l    1                ; offset: $18 (24)
  1015. submitFlag                 ds.b    1                ; offset: $1C (28)
  1016. padByte                     ds.b    1                ; offset: $1D (29)
  1017. msgID                     ds        MailLetterID    ; offset: $1E (30)
  1018. sizeof                     EQU *                    ; size:   $2E (46)
  1019.                         ENDR
  1020. MSAMPutMsgHeaderPB        RECORD 0
  1021. qLink                     ds.l    1                ; offset: $0 (0)
  1022. reservedH1                 ds.l    1                ; offset: $4 (4)
  1023. reservedH2                 ds.l    1                ; offset: $8 (8)
  1024. ioCompletion             ds.l    1                ; offset: $C (12)
  1025. ioResult                 ds.w    1                ; offset: $10 (16)
  1026. saveA5                     ds.l    1                ; offset: $12 (18)
  1027. reqCode                     ds.w    1                ; offset: $16 (22)
  1028. mailMsgRef                 ds.l    1                ; offset: $18 (24)
  1029. replyQueue                 ds.l    1                ; offset: $1C (28)
  1030. sender                     ds.l    1                ; offset: $20 (32)
  1031. deliveryNotification     ds.b    1                ; offset: $24 (36)
  1032. priority                 ds.b    1                ; offset: $25 (37)
  1033. sizeof                     EQU *                    ; size:   $26 (38)
  1034.                         ENDR
  1035. MSAMPutAttributePB        RECORD 0
  1036. qLink                     ds.l    1                ; offset: $0 (0)
  1037. reservedH1                 ds.l    1                ; offset: $4 (4)
  1038. reservedH2                 ds.l    1                ; offset: $8 (8)
  1039. ioCompletion             ds.l    1                ; offset: $C (12)
  1040. ioResult                 ds.w    1                ; offset: $10 (16)
  1041. saveA5                     ds.l    1                ; offset: $12 (18)
  1042. reqCode                     ds.w    1                ; offset: $16 (22)
  1043. mailMsgRef                 ds.l    1                ; offset: $18 (24)
  1044. attrID                     ds.w    1                ; offset: $1C (28)        ;  kMailIndicationsBit thru kMailSubjectBit 
  1045. buffer                     ds        MailBuffer        ; offset: $1E (30)
  1046. sizeof                     EQU *                    ; size:   $2A (42)
  1047.                         ENDR
  1048. MSAMPutRecipientPB        RECORD 0
  1049. qLink                     ds.l    1                ; offset: $0 (0)
  1050. reservedH1                 ds.l    1                ; offset: $4 (4)
  1051. reservedH2                 ds.l    1                ; offset: $8 (8)
  1052. ioCompletion             ds.l    1                ; offset: $C (12)
  1053. ioResult                 ds.w    1                ; offset: $10 (16)
  1054. saveA5                     ds.l    1                ; offset: $12 (18)
  1055. reqCode                     ds.w    1                ; offset: $16 (22)
  1056. mailMsgRef                 ds.l    1                ; offset: $18 (24)
  1057. attrID                     ds.w    1                ; offset: $1C (28)        ;  kMailFromBit thru kMailBccBit 
  1058. recipient                 ds.l    1                ; offset: $1E (30)
  1059. responsible                 ds.b    1                ; offset: $22 (34)        ;  valid for server and message msams only 
  1060. filler1                     ds.b    1                ; offset: $23 (35)
  1061. sizeof                     EQU *                    ; size:   $24 (36)
  1062.                         ENDR
  1063. MSAMPutContentPB        RECORD 0
  1064. qLink                     ds.l    1                ; offset: $0 (0)
  1065. reservedH1                 ds.l    1                ; offset: $4 (4)
  1066. reservedH2                 ds.l    1                ; offset: $8 (8)
  1067. ioCompletion             ds.l    1                ; offset: $C (12)
  1068. ioResult                 ds.w    1                ; offset: $10 (16)
  1069. saveA5                     ds.l    1                ; offset: $12 (18)
  1070. reqCode                     ds.w    1                ; offset: $16 (22)
  1071. mailMsgRef                 ds.l    1                ; offset: $18 (24)
  1072. segmentType                 ds.w    1                ; offset: $1C (28)
  1073. append                     ds.b    1                ; offset: $1E (30)
  1074. padByte                     ds.b    1                ; offset: $1F (31)
  1075. buffer                     ds        MailBuffer        ; offset: $20 (32)
  1076. textScrap                 ds.l    1                ; offset: $2C (44)
  1077. startNewScript             ds.b    1                ; offset: $30 (48)
  1078. filler1                     ds.b    1                ; offset: $31 (49)
  1079. script                     ds.w    1                ; offset: $32 (50)        ;  valid only if startNewScript is true 
  1080. sizeof                     EQU *                    ; size:   $34 (52)
  1081.                         ENDR
  1082. MSAMPutEnclosurePB        RECORD 0
  1083. qLink                     ds.l    1                ; offset: $0 (0)
  1084. reservedH1                 ds.l    1                ; offset: $4 (4)
  1085. reservedH2                 ds.l    1                ; offset: $8 (8)
  1086. ioCompletion             ds.l    1                ; offset: $C (12)
  1087. ioResult                 ds.w    1                ; offset: $10 (16)
  1088. saveA5                     ds.l    1                ; offset: $12 (18)
  1089. reqCode                     ds.w    1                ; offset: $16 (22)
  1090. mailMsgRef                 ds.l    1                ; offset: $18 (24)
  1091. contentEnclosure         ds.b    1                ; offset: $1C (28)
  1092. padByte                     ds.b    1                ; offset: $1D (29)
  1093. hfs                         ds.b    1                ; offset: $1E (30)        ;  true => in file system, false => in memory 
  1094. append                     ds.b    1                ; offset: $1F (31)
  1095. buffer                     ds        MailBuffer        ; offset: $20 (32)        ;  Unused if hfs == true 
  1096. enclosure                 ds        FSSpec            ; offset: $2C (44)
  1097. addlInfo                 ds        MailEnclosureInfo ; offset: $72 (114)
  1098. sizeof                     EQU *                    ; size:   $82 (130)
  1099.                         ENDR
  1100. MSAMPutBlockPB            RECORD 0
  1101. qLink                     ds.l    1                ; offset: $0 (0)
  1102. reservedH1                 ds.l    1                ; offset: $4 (4)
  1103. reservedH2                 ds.l    1                ; offset: $8 (8)
  1104. ioCompletion             ds.l    1                ; offset: $C (12)
  1105. ioResult                 ds.w    1                ; offset: $10 (16)
  1106. saveA5                     ds.l    1                ; offset: $12 (18)
  1107. reqCode                     ds.w    1                ; offset: $16 (22)
  1108. mailMsgRef                 ds.l    1                ; offset: $18 (24)
  1109. refCon                     ds.l    1                ; offset: $1C (28)        ;  for messages only 
  1110. blockType                 ds        OCECreatorType ; offset: $20 (32)
  1111. append                     ds.b    1                ; offset: $28 (40)
  1112. filler1                     ds.b    1                ; offset: $29 (41)
  1113. buffer                     ds        MailBuffer        ; offset: $2A (42)
  1114. mode                     ds.w    1                ; offset: $36 (54)        ;  if blockType is kMailTunnelLtrType or kMailHopInfoType  mode is assumed to be kMailFromMark 
  1115. offset                     ds.l    1                ; offset: $38 (56)
  1116. sizeof                     EQU *                    ; size:   $3C (60)
  1117.                         ENDR
  1118. ; ***************************************************************************************
  1119. MSAMCreateReportPB        RECORD 0
  1120. qLink                     ds.l    1                ; offset: $0 (0)
  1121. reservedH1                 ds.l    1                ; offset: $4 (4)
  1122. reservedH2                 ds.l    1                ; offset: $8 (8)
  1123. ioCompletion             ds.l    1                ; offset: $C (12)
  1124. ioResult                 ds.w    1                ; offset: $10 (16)
  1125. saveA5                     ds.l    1                ; offset: $12 (18)
  1126. reqCode                     ds.w    1                ; offset: $16 (22)
  1127. queueRef                 ds.l    1                ; offset: $18 (24)        ;  to distinguish personal and server MSAMs 
  1128. mailMsgRef                 ds.l    1                ; offset: $1C (28)
  1129. msgID                     ds        MailLetterID    ; offset: $20 (32)        ;  kMailLetterIDBit of letter being reported upon 
  1130. sender                     ds.l    1                ; offset: $30 (48)        ;  sender of the letter you are creating report on 
  1131. sizeof                     EQU *                    ; size:   $34 (52)
  1132.                         ENDR
  1133. MSAMPutRecipientReportPB RECORD 0
  1134. qLink                     ds.l    1                ; offset: $0 (0)
  1135. reservedH1                 ds.l    1                ; offset: $4 (4)
  1136. reservedH2                 ds.l    1                ; offset: $8 (8)
  1137. ioCompletion             ds.l    1                ; offset: $C (12)
  1138. ioResult                 ds.w    1                ; offset: $10 (16)
  1139. saveA5                     ds.l    1                ; offset: $12 (18)
  1140. reqCode                     ds.w    1                ; offset: $16 (22)
  1141. mailMsgRef                 ds.l    1                ; offset: $18 (24)
  1142. recipientIndex             ds.w    1                ; offset: $1C (28)        ;  recipient index in the original letter 
  1143. result                     ds.w    1                ; offset: $1E (30)        ;  result of sending the recipient 
  1144. sizeof                     EQU *                    ; size:   $20 (32)
  1145.                         ENDR
  1146. ; ***************************************************************************************
  1147. MailWakeupPMSAMPB        RECORD 0
  1148. qLink                     ds.l    1                ; offset: $0 (0)
  1149. reservedH1                 ds.l    1                ; offset: $4 (4)
  1150. reservedH2                 ds.l    1                ; offset: $8 (8)
  1151. ioCompletion             ds.l    1                ; offset: $C (12)
  1152. ioResult                 ds.w    1                ; offset: $10 (16)
  1153. saveA5                     ds.l    1                ; offset: $12 (18)
  1154. reqCode                     ds.w    1                ; offset: $16 (22)
  1155. pmsamCID                 ds        CreationID        ; offset: $18 (24)
  1156. mailSlotID                 ds.w    1                ; offset: $20 (32)
  1157. sizeof                     EQU *                    ; size:   $22 (34)
  1158.                         ENDR
  1159. MailCreateMailSlotPB    RECORD 0
  1160. qLink                     ds.l    1                ; offset: $0 (0)
  1161. reservedH1                 ds.l    1                ; offset: $4 (4)
  1162. reservedH2                 ds.l    1                ; offset: $8 (8)
  1163. ioCompletion             ds.l    1                ; offset: $C (12)
  1164. ioResult                 ds.w    1                ; offset: $10 (16)
  1165. saveA5                     ds.l    1                ; offset: $12 (18)
  1166. reqCode                     ds.w    1                ; offset: $16 (22)
  1167. mailboxRef                 ds.l    1                ; offset: $18 (24)
  1168. timeout                     ds.l    1                ; offset: $1C (28)
  1169. pmsamCID                 ds        CreationID        ; offset: $20 (32)
  1170. smca                     ds        SMCA            ; offset: $28 (40)
  1171. sizeof                     EQU *                    ; size:   $38 (56)
  1172.                         ENDR
  1173. MailModifyMailSlotPB    RECORD 0
  1174. qLink                     ds.l    1                ; offset: $0 (0)
  1175. reservedH1                 ds.l    1                ; offset: $4 (4)
  1176. reservedH2                 ds.l    1                ; offset: $8 (8)
  1177. ioCompletion             ds.l    1                ; offset: $C (12)
  1178. ioResult                 ds.w    1                ; offset: $10 (16)
  1179. saveA5                     ds.l    1                ; offset: $12 (18)
  1180. reqCode                     ds.w    1                ; offset: $16 (22)
  1181. mailboxRef                 ds.l    1                ; offset: $18 (24)
  1182. timeout                     ds.l    1                ; offset: $1C (28)
  1183. pmsamCID                 ds        CreationID        ; offset: $20 (32)
  1184. smca                     ds        SMCA            ; offset: $28 (40)
  1185. sizeof                     EQU *                    ; size:   $38 (56)
  1186.                         ENDR
  1187. MSAMParam                RECORD 0
  1188. qLink                     ds.l    1                ; offset: $0 (0)
  1189. reservedH1                 ds.l    1                ; offset: $4 (4)
  1190. reservedH2                 ds.l    1                ; offset: $8 (8)
  1191. ioCompletion             ds.l    1                ; offset: $C (12)
  1192. ioResult                 ds.w    1                ; offset: $10 (16)
  1193. saveA5                     ds.l    1                ; offset: $12 (18)
  1194. reqCode                     ds.w    1                ; offset: $16 (22)
  1195.                          ORG 0
  1196. pmsamGetMSAMRecord         ds        PMSAMGetMSAMRecordPB ; offset: $0 (0)
  1197.                          ORG 0
  1198. pmsamOpenQueues             ds        PMSAMOpenQueuesPB ; offset: $0 (0)
  1199.                          ORG 0
  1200. pmsamSetStatus             ds        PMSAMSetStatusPB ; offset: $0 (0)
  1201.                          ORG 0
  1202. pmsamLogError             ds        PMSAMLogErrorPB ; offset: $0 (0)
  1203.                          ORG 0
  1204. smsamSetup                 ds        SMSAMSetupPB    ; offset: $0 (0)
  1205.                          ORG 0
  1206. smsamStartup             ds        SMSAMStartupPB ; offset: $0 (0)
  1207.                          ORG 0
  1208. smsamShutdown             ds        SMSAMShutdownPB ; offset: $0 (0)
  1209.                          ORG 0
  1210. msamEnumerate             ds        MSAMEnumeratePB ; offset: $0 (0)
  1211.                          ORG 0
  1212. msamDelete                 ds        MSAMDeletePB    ; offset: $0 (0)
  1213.                          ORG 0
  1214. msamOpen                 ds        MSAMOpenPB        ; offset: $0 (0)
  1215.                          ORG 0
  1216. msamOpenNested             ds        MSAMOpenNestedPB ; offset: $0 (0)
  1217.                          ORG 0
  1218. msamClose                 ds        MSAMClosePB        ; offset: $0 (0)
  1219.                          ORG 0
  1220. msamGetMsgHeader         ds        MSAMGetMsgHeaderPB ; offset: $0 (0)
  1221.                          ORG 0
  1222. msamGetAttributes         ds        MSAMGetAttributesPB ; offset: $0 (0)
  1223.                          ORG 0
  1224. msamGetRecipients         ds        MSAMGetRecipientsPB ; offset: $0 (0)
  1225.                          ORG 0
  1226. msamGetContent             ds        MSAMGetContentPB ; offset: $0 (0)
  1227.                          ORG 0
  1228. msamGetEnclosure         ds        MSAMGetEnclosurePB ; offset: $0 (0)
  1229.                          ORG 0
  1230. msamEnumerateBlocks         ds        MSAMEnumerateBlocksPB ; offset: $0 (0)
  1231.                          ORG 0
  1232. msamGetBlock             ds        MSAMGetBlockPB ; offset: $0 (0)
  1233.                          ORG 0
  1234. msamMarkRecipients         ds        MSAMMarkRecipientsPB ; offset: $0 (0)
  1235.                          ORG 0
  1236. msamnMarkRecipients         ds        MSAMnMarkRecipientsPB ; offset: $0 (0)
  1237.                          ORG 0
  1238. msamCreate                 ds        MSAMCreatePB    ; offset: $0 (0)
  1239.                          ORG 0
  1240. msamBeginNested             ds        MSAMBeginNestedPB ; offset: $0 (0)
  1241.                          ORG 0
  1242. msamEndNested             ds        MSAMEndNestedPB ; offset: $0 (0)
  1243.                          ORG 0
  1244. msamSubmit                 ds        MSAMSubmitPB    ; offset: $0 (0)
  1245.                          ORG 0
  1246. msamPutMsgHeader         ds        MSAMPutMsgHeaderPB ; offset: $0 (0)
  1247.                          ORG 0
  1248. msamPutAttribute         ds        MSAMPutAttributePB ; offset: $0 (0)
  1249.                          ORG 0
  1250. msamPutRecipient         ds        MSAMPutRecipientPB ; offset: $0 (0)
  1251.                          ORG 0
  1252. msamPutContent             ds        MSAMPutContentPB ; offset: $0 (0)
  1253.                          ORG 0
  1254. msamPutEnclosure         ds        MSAMPutEnclosurePB ; offset: $0 (0)        ;  this field is SYSTEM8_DEPRECATED
  1255.                          ORG 0
  1256. msamPutBlock             ds        MSAMPutBlockPB ; offset: $0 (0)
  1257.                          ORG 0
  1258. msamCreateReport         ds        MSAMCreateReportPB ; offset: $0 (0)        ;  Reports and Error Handling Calls 
  1259.                          ORG 0
  1260. msamPutRecipientReport     ds        MSAMPutRecipientReportPB ; offset: $0 (0)
  1261.                          ORG 0
  1262. pmsamCreateMsgSummary     ds        PMSAMCreateMsgSummaryPB ; offset: $0 (0)
  1263.                          ORG 0
  1264. pmsamPutMsgSummary         ds        PMSAMPutMsgSummaryPB ; offset: $0 (0)
  1265.                          ORG 0
  1266. pmsamGetMsgSummary         ds        PMSAMGetMsgSummaryPB ; offset: $0 (0)
  1267.                          ORG 0
  1268. wakeupPMSAM                 ds        MailWakeupPMSAMPB ; offset: $0 (0)
  1269.                          ORG 0
  1270. createMailSlot             ds        MailCreateMailSlotPB ; offset: $0 (0)
  1271.                          ORG 0
  1272. modifyMailSlot             ds        MailModifyMailSlotPB ; offset: $0 (0)
  1273.                          ORG 130
  1274. sizeof                     EQU *                    ; size:   $82 (130)
  1275.                         ENDR
  1276. ;  ASYNCHRONOUS ONLY, client must call WaitNextEvent 
  1277. ;
  1278. ; pascal OSErr MailCreateMailSlot(MSAMParam *paramBlock)
  1279. ;
  1280.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1281.         Macro
  1282.         _MailCreateMailSlot
  1283.             moveq               #1,D0
  1284.             move.b              D0,-(sp)
  1285.             move.w              #$052B,-(sp)
  1286.             dc.w                $AA5E
  1287.         EndM
  1288.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1289.         IMPORT_CFM_FUNCTION MailCreateMailSlot
  1290.     ENDIF
  1291.  
  1292. ;  ASYNCHRONOUS ONLY, client must call WaitNextEvent 
  1293. ;
  1294. ; pascal OSErr MailModifyMailSlot(MSAMParam *paramBlock)
  1295. ;
  1296.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1297.         Macro
  1298.         _MailModifyMailSlot
  1299.             moveq               #1,D0
  1300.             move.b              D0,-(sp)
  1301.             move.w              #$052C,-(sp)
  1302.             dc.w                $AA5E
  1303.         EndM
  1304.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1305.         IMPORT_CFM_FUNCTION MailModifyMailSlot
  1306.     ENDIF
  1307.  
  1308. ;  ASYNCHRONOUS ONLY, client must call WaitNextEvent 
  1309. ;
  1310. ; pascal OSErr MailWakeupPMSAM(MSAMParam *paramBlock)
  1311. ;
  1312.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1313.         Macro
  1314.         _MailWakeupPMSAM
  1315.             moveq               #1,D0
  1316.             move.b              D0,-(sp)
  1317.             move.w              #$0507,-(sp)
  1318.             dc.w                $AA5E
  1319.         EndM
  1320.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1321.         IMPORT_CFM_FUNCTION MailWakeupPMSAM
  1322.     ENDIF
  1323.  
  1324. ;  Personal MSAM Glue Routines 
  1325. ;
  1326. ; pascal OSErr PMSAMOpenQueues(MSAMParam *paramBlock)
  1327. ;
  1328.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1329.         Macro
  1330.         _PMSAMOpenQueues
  1331.             moveq               #0,D0
  1332.             move.b              D0,-(sp)
  1333.             move.w              #$0500,-(sp)
  1334.             dc.w                $AA5E
  1335.         EndM
  1336.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1337.         IMPORT_CFM_FUNCTION PMSAMOpenQueues
  1338.     ENDIF
  1339.  
  1340. ;
  1341. ; pascal OSErr PMSAMSetStatus(MSAMParam *paramBlock, Boolean asyncFlag)
  1342. ;
  1343.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1344.         Macro
  1345.         _PMSAMSetStatus
  1346.             move.w              #$0527,-(sp)
  1347.             dc.w                $AA5E
  1348.         EndM
  1349.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1350.         IMPORT_CFM_FUNCTION PMSAMSetStatus
  1351.     ENDIF
  1352.  
  1353. ;  SYNC ONLY 
  1354. ;
  1355. ; pascal OSErr PMSAMGetMSAMRecord(MSAMParam *paramBlock)
  1356. ;
  1357.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1358.         Macro
  1359.         _PMSAMGetMSAMRecord
  1360.             moveq               #0,D0
  1361.             move.b              D0,-(sp)
  1362.             move.w              #$0506,-(sp)
  1363.             dc.w                $AA5E
  1364.         EndM
  1365.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1366.         IMPORT_CFM_FUNCTION PMSAMGetMSAMRecord
  1367.     ENDIF
  1368.  
  1369. ;  Server MSAM Glue Routines 
  1370. ;  SYNC ONLY 
  1371. ;
  1372. ; pascal OSErr SMSAMSetup(MSAMParam *paramBlock)
  1373. ;
  1374.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1375.         Macro
  1376.         _SMSAMSetup
  1377.             moveq               #0,D0
  1378.             move.b              D0,-(sp)
  1379.             move.w              #$0523,-(sp)
  1380.             dc.w                $AA5E
  1381.         EndM
  1382.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1383.         IMPORT_CFM_FUNCTION SMSAMSetup
  1384.     ENDIF
  1385.  
  1386. ;  SYNC ONLY 
  1387. ;
  1388. ; pascal OSErr SMSAMStartup(MSAMParam *paramBlock)
  1389. ;
  1390.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1391.         Macro
  1392.         _SMSAMStartup
  1393.             moveq               #0,D0
  1394.             move.b              D0,-(sp)
  1395.             move.w              #$0501,-(sp)
  1396.             dc.w                $AA5E
  1397.         EndM
  1398.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1399.         IMPORT_CFM_FUNCTION SMSAMStartup
  1400.     ENDIF
  1401.  
  1402. ;
  1403. ; pascal OSErr SMSAMShutdown(MSAMParam *paramBlock, Boolean asyncFlag)
  1404. ;
  1405.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1406.         Macro
  1407.         _SMSAMShutdown
  1408.             move.w              #$0502,-(sp)
  1409.             dc.w                $AA5E
  1410.         EndM
  1411.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1412.         IMPORT_CFM_FUNCTION SMSAMShutdown
  1413.     ENDIF
  1414.  
  1415. ;  Get Interface Glue Routines 
  1416. ;
  1417. ; pascal OSErr MSAMEnumerate(MSAMParam *paramBlock, Boolean asyncFlag)
  1418. ;
  1419.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1420.         Macro
  1421.         _MSAMEnumerate
  1422.             move.w              #$0503,-(sp)
  1423.             dc.w                $AA5E
  1424.         EndM
  1425.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1426.         IMPORT_CFM_FUNCTION MSAMEnumerate
  1427.     ENDIF
  1428.  
  1429. ;
  1430. ; pascal OSErr MSAMDelete(MSAMParam *paramBlock, Boolean asyncFlag)
  1431. ;
  1432.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1433.         Macro
  1434.         _MSAMDelete
  1435.             move.w              #$0504,-(sp)
  1436.             dc.w                $AA5E
  1437.         EndM
  1438.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1439.         IMPORT_CFM_FUNCTION MSAMDelete
  1440.     ENDIF
  1441.  
  1442. ;
  1443. ; pascal OSErr MSAMMarkRecipients(MSAMParam *paramBlock, Boolean asyncFlag)
  1444. ;
  1445.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1446.         Macro
  1447.         _MSAMMarkRecipients
  1448.             move.w              #$0505,-(sp)
  1449.             dc.w                $AA5E
  1450.         EndM
  1451.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1452.         IMPORT_CFM_FUNCTION MSAMMarkRecipients
  1453.     ENDIF
  1454.  
  1455. ;
  1456. ; pascal OSErr MSAMnMarkRecipients(MSAMParam *paramBlock, Boolean asyncFlag)
  1457. ;
  1458.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1459.         Macro
  1460.         _MSAMnMarkRecipients
  1461.             move.w              #$0512,-(sp)
  1462.             dc.w                $AA5E
  1463.         EndM
  1464.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1465.         IMPORT_CFM_FUNCTION MSAMnMarkRecipients
  1466.     ENDIF
  1467.  
  1468. ;
  1469. ; pascal OSErr MSAMOpen(MSAMParam *paramBlock, Boolean asyncFlag)
  1470. ;
  1471.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1472.         Macro
  1473.         _MSAMOpen
  1474.             move.w              #$0508,-(sp)
  1475.             dc.w                $AA5E
  1476.         EndM
  1477.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1478.         IMPORT_CFM_FUNCTION MSAMOpen
  1479.     ENDIF
  1480.  
  1481. ;
  1482. ; pascal OSErr MSAMOpenNested(MSAMParam *paramBlock, Boolean asyncFlag)
  1483. ;
  1484.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1485.         Macro
  1486.         _MSAMOpenNested
  1487.             move.w              #$0509,-(sp)
  1488.             dc.w                $AA5E
  1489.         EndM
  1490.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1491.         IMPORT_CFM_FUNCTION MSAMOpenNested
  1492.     ENDIF
  1493.  
  1494. ;
  1495. ; pascal OSErr MSAMClose(MSAMParam *paramBlock, Boolean asyncFlag)
  1496. ;
  1497.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1498.         Macro
  1499.         _MSAMClose
  1500.             move.w              #$050A,-(sp)
  1501.             dc.w                $AA5E
  1502.         EndM
  1503.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1504.         IMPORT_CFM_FUNCTION MSAMClose
  1505.     ENDIF
  1506.  
  1507. ;
  1508. ; pascal OSErr MSAMGetRecipients(MSAMParam *paramBlock, Boolean asyncFlag)
  1509. ;
  1510.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1511.         Macro
  1512.         _MSAMGetRecipients
  1513.             move.w              #$050C,-(sp)
  1514.             dc.w                $AA5E
  1515.         EndM
  1516.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1517.         IMPORT_CFM_FUNCTION MSAMGetRecipients
  1518.     ENDIF
  1519.  
  1520. ;
  1521. ; pascal OSErr MSAMGetAttributes(MSAMParam *paramBlock, Boolean asyncFlag)
  1522. ;
  1523.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1524.         Macro
  1525.         _MSAMGetAttributes
  1526.             move.w              #$050B,-(sp)
  1527.             dc.w                $AA5E
  1528.         EndM
  1529.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1530.         IMPORT_CFM_FUNCTION MSAMGetAttributes
  1531.     ENDIF
  1532.  
  1533. ;
  1534. ; pascal OSErr MSAMGetContent(MSAMParam *paramBlock, Boolean asyncFlag)
  1535. ;
  1536.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1537.         Macro
  1538.         _MSAMGetContent
  1539.             move.w              #$050D,-(sp)
  1540.             dc.w                $AA5E
  1541.         EndM
  1542.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1543.         IMPORT_CFM_FUNCTION MSAMGetContent
  1544.     ENDIF
  1545.  
  1546. ;
  1547. ; pascal OSErr MSAMGetEnclosure(MSAMParam *paramBlock, Boolean asyncFlag)
  1548. ;
  1549.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1550.         Macro
  1551.         _MSAMGetEnclosure
  1552.             move.w              #$050E,-(sp)
  1553.             dc.w                $AA5E
  1554.         EndM
  1555.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1556.         IMPORT_CFM_FUNCTION MSAMGetEnclosure
  1557.     ENDIF
  1558.  
  1559. ;
  1560. ; pascal OSErr MSAMEnumerateBlocks(MSAMParam *paramBlock, Boolean asyncFlag)
  1561. ;
  1562.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1563.         Macro
  1564.         _MSAMEnumerateBlocks
  1565.             move.w              #$050F,-(sp)
  1566.             dc.w                $AA5E
  1567.         EndM
  1568.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1569.         IMPORT_CFM_FUNCTION MSAMEnumerateBlocks
  1570.     ENDIF
  1571.  
  1572. ;
  1573. ; pascal OSErr MSAMGetBlock(MSAMParam *paramBlock, Boolean asyncFlag)
  1574. ;
  1575.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1576.         Macro
  1577.         _MSAMGetBlock
  1578.             move.w              #$0510,-(sp)
  1579.             dc.w                $AA5E
  1580.         EndM
  1581.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1582.         IMPORT_CFM_FUNCTION MSAMGetBlock
  1583.     ENDIF
  1584.  
  1585. ;
  1586. ; pascal OSErr MSAMGetMsgHeader(MSAMParam *paramBlock, Boolean asyncFlag)
  1587. ;
  1588.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1589.         Macro
  1590.         _MSAMGetMsgHeader
  1591.             move.w              #$0511,-(sp)
  1592.             dc.w                $AA5E
  1593.         EndM
  1594.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1595.         IMPORT_CFM_FUNCTION MSAMGetMsgHeader
  1596.     ENDIF
  1597.  
  1598. ;  Put Interface Glue Routines 
  1599. ;
  1600. ; pascal OSErr MSAMCreate(MSAMParam *paramBlock, Boolean asyncFlag)
  1601. ;
  1602.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1603.         Macro
  1604.         _MSAMCreate
  1605.             move.w              #$0514,-(sp)
  1606.             dc.w                $AA5E
  1607.         EndM
  1608.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1609.         IMPORT_CFM_FUNCTION MSAMCreate
  1610.     ENDIF
  1611.  
  1612. ;
  1613. ; pascal OSErr MSAMBeginNested(MSAMParam *paramBlock, Boolean asyncFlag)
  1614. ;
  1615.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1616.         Macro
  1617.         _MSAMBeginNested
  1618.             move.w              #$0515,-(sp)
  1619.             dc.w                $AA5E
  1620.         EndM
  1621.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1622.         IMPORT_CFM_FUNCTION MSAMBeginNested
  1623.     ENDIF
  1624.  
  1625. ;
  1626. ; pascal OSErr MSAMEndNested(MSAMParam *paramBlock)
  1627. ;
  1628.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1629.         Macro
  1630.         _MSAMEndNested
  1631.             moveq               #0,D0
  1632.             move.b              D0,-(sp)
  1633.             move.w              #$0516,-(sp)
  1634.             dc.w                $AA5E
  1635.         EndM
  1636.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1637.         IMPORT_CFM_FUNCTION MSAMEndNested
  1638.     ENDIF
  1639.  
  1640. ;   SYNCHRONOUS ONLY 
  1641. ;
  1642. ; pascal OSErr MSAMSubmit(MSAMParam *paramBlock)
  1643. ;
  1644.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1645.         Macro
  1646.         _MSAMSubmit
  1647.             moveq               #0,D0
  1648.             move.b              D0,-(sp)
  1649.             move.w              #$0517,-(sp)
  1650.             dc.w                $AA5E
  1651.         EndM
  1652.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1653.         IMPORT_CFM_FUNCTION MSAMSubmit
  1654.     ENDIF
  1655.  
  1656. ;
  1657. ; pascal OSErr MSAMPutAttribute(MSAMParam *paramBlock, Boolean asyncFlag)
  1658. ;
  1659.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1660.         Macro
  1661.         _MSAMPutAttribute
  1662.             move.w              #$0518,-(sp)
  1663.             dc.w                $AA5E
  1664.         EndM
  1665.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1666.         IMPORT_CFM_FUNCTION MSAMPutAttribute
  1667.     ENDIF
  1668.  
  1669. ;
  1670. ; pascal OSErr MSAMPutRecipient(MSAMParam *paramBlock, Boolean asyncFlag)
  1671. ;
  1672.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1673.         Macro
  1674.         _MSAMPutRecipient
  1675.             move.w              #$0519,-(sp)
  1676.             dc.w                $AA5E
  1677.         EndM
  1678.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1679.         IMPORT_CFM_FUNCTION MSAMPutRecipient
  1680.     ENDIF
  1681.  
  1682. ;
  1683. ; pascal OSErr MSAMPutContent(MSAMParam *paramBlock, Boolean asyncFlag)
  1684. ;
  1685.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1686.         Macro
  1687.         _MSAMPutContent
  1688.             move.w              #$051A,-(sp)
  1689.             dc.w                $AA5E
  1690.         EndM
  1691.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1692.         IMPORT_CFM_FUNCTION MSAMPutContent
  1693.     ENDIF
  1694.  
  1695. ;   SYNCHRONOUS ONLY 
  1696. ;
  1697. ; pascal OSErr MSAMPutEnclosure(MSAMParam *paramBlock)
  1698. ;
  1699.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1700.         Macro
  1701.         _MSAMPutEnclosure
  1702.             moveq               #0,D0
  1703.             move.b              D0,-(sp)
  1704.             move.w              #$051B,-(sp)
  1705.             dc.w                $AA5E
  1706.         EndM
  1707.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1708.         IMPORT_CFM_FUNCTION MSAMPutEnclosure
  1709.     ENDIF
  1710.  
  1711. ;
  1712. ; pascal OSErr MSAMPutBlock(MSAMParam *paramBlock, Boolean asyncFlag)
  1713. ;
  1714.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1715.         Macro
  1716.         _MSAMPutBlock
  1717.             move.w              #$051C,-(sp)
  1718.             dc.w                $AA5E
  1719.         EndM
  1720.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1721.         IMPORT_CFM_FUNCTION MSAMPutBlock
  1722.     ENDIF
  1723.  
  1724. ;
  1725. ; pascal OSErr MSAMPutMsgHeader(MSAMParam *paramBlock, Boolean asyncFlag)
  1726. ;
  1727.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1728.         Macro
  1729.         _MSAMPutMsgHeader
  1730.             move.w              #$051D,-(sp)
  1731.             dc.w                $AA5E
  1732.         EndM
  1733.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1734.         IMPORT_CFM_FUNCTION MSAMPutMsgHeader
  1735.     ENDIF
  1736.  
  1737. ;  Reports and Error Handling Glue Routines 
  1738. ;
  1739. ; pascal OSErr MSAMCreateReport(MSAMParam *paramBlock, Boolean asyncFlag)
  1740. ;
  1741.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1742.         Macro
  1743.         _MSAMCreateReport
  1744.             move.w              #$051F,-(sp)
  1745.             dc.w                $AA5E
  1746.         EndM
  1747.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1748.         IMPORT_CFM_FUNCTION MSAMCreateReport
  1749.     ENDIF
  1750.  
  1751. ;
  1752. ; pascal OSErr MSAMPutRecipientReport(MSAMParam *paramBlock, Boolean asyncFlag)
  1753. ;
  1754.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1755.         Macro
  1756.         _MSAMPutRecipientReport
  1757.             move.w              #$0520,-(sp)
  1758.             dc.w                $AA5E
  1759.         EndM
  1760.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1761.         IMPORT_CFM_FUNCTION MSAMPutRecipientReport
  1762.     ENDIF
  1763.  
  1764. ;
  1765. ; pascal OSErr PMSAMLogError(MSAMParam *paramBlock)
  1766. ;
  1767.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1768.         Macro
  1769.         _PMSAMLogError
  1770.             moveq               #0,D0
  1771.             move.b              D0,-(sp)
  1772.             move.w              #$0521,-(sp)
  1773.             dc.w                $AA5E
  1774.         EndM
  1775.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1776.         IMPORT_CFM_FUNCTION PMSAMLogError
  1777.     ENDIF
  1778.  
  1779. ;  MsgSummary Glue Routines 
  1780. ;
  1781. ; pascal OSErr PMSAMCreateMsgSummary(MSAMParam *paramBlock, Boolean asyncFlag)
  1782. ;
  1783.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1784.         Macro
  1785.         _PMSAMCreateMsgSummary
  1786.             move.w              #$0522,-(sp)
  1787.             dc.w                $AA5E
  1788.         EndM
  1789.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1790.         IMPORT_CFM_FUNCTION PMSAMCreateMsgSummary
  1791.     ENDIF
  1792.  
  1793. ;
  1794. ; pascal OSErr PMSAMPutMsgSummary(MSAMParam *paramBlock, Boolean asyncFlag)
  1795. ;
  1796.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1797.         Macro
  1798.         _PMSAMPutMsgSummary
  1799.             move.w              #$0525,-(sp)
  1800.             dc.w                $AA5E
  1801.         EndM
  1802.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1803.         IMPORT_CFM_FUNCTION PMSAMPutMsgSummary
  1804.     ENDIF
  1805.  
  1806. ;
  1807. ; pascal OSErr PMSAMGetMsgSummary(MSAMParam *paramBlock, Boolean asyncFlag)
  1808. ;
  1809.     IF TARGET_OS_MAC ** TARGET_CPU_68K ** ¬ TARGET_RT_MAC_CFM THEN
  1810.         Macro
  1811.         _PMSAMGetMsgSummary
  1812.             move.w              #$0526,-(sp)
  1813.             dc.w                $AA5E
  1814.         EndM
  1815.     ELSEIF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1816.         IMPORT_CFM_FUNCTION PMSAMGetMsgSummary
  1817.     ENDIF
  1818.  
  1819.  
  1820.     ENDIF ; __OCEMAIL__ 
  1821.  
  1822.